package com.nengchuan.kbms.dfs.service;

import com.nengchuan.kbms.common.DfsTreeNode;
import com.nengchuan.kbms.common.IPageService;
import com.nengchuan.kbms.dfs.entity.dto.UserFolderDTO;
import com.nengchuan.kbms.dfs.entity.po.UserFolder;

import java.io.Serializable;
import java.util.List;

/**
 * <p>
 * 用户文件夹 服务类
 * </p>
 *
 * @author abe
 * @since 2020-03-30
 */
public interface UserFolderService extends IPageService<UserFolder> {

    /**
     * 新增用户文件夹
     */
    Long saveFolder(UserFolderDTO dto);

    /**
     * 更新用户文件夹
     */
    boolean updateFolder(UserFolderDTO dto);

    /**
     * 删除用户文件夹
     */
    boolean removeFolder(Serializable id);

    /**
     * 用户文件夹树，id 为空 返回当前用户所有的文件夹数 ，id不为空返回该用户节点下的内容
     * @param rootId 用户文件夹id
     * @return
     */
    List<DfsTreeNode> tree(Long rootId);

    /**
     * 断言用户文件夹存在（不存在会抛出runtime exception
     */
    void assertFolderExisted(Long folderId);
}
